Komputer
Komputer (z ang. computer od łac. computare – obliczać, dawne nazwy używane w Polsce: mózg elektronowy, elektroniczna maszyna cyfrowa, maszyna matematyczna) – urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału ciągłego. Pomimo, że mechaniczne maszyny liczące istniały od wielu stuleci, komputery w sensie współczesnym pojawiły się dopiero w połowie XX wieku, gdy zbudowano pierwsze komputery elektroniczne. Miały one rozmiary sporych pomieszczeń i zużywały kilkaset razy więcej energii niż współczesne komputery osobiste(PC), a jednocześnie miały miliardy razy mniejszą moc obliczeniową. Proste komputery są na tyle małe, że mogą zmieścić się w zegarku i być zasilane baterią. Z kolei komputery osobiste stały się symbolem ery informatycznej i to je ma na myśli większość populacji mówiąc o "komputerze". Jednak najliczniejszymi przedstawicielami maszyn liczących są systemy wbudowane sterujące najróżniejszymi urządzeniami - od odtwarzaczy MP3 i zabawek po roboty przemysłowe. Komputery a inne maszyny liczące Komputer od tradycyjnego kalkulatora odróżnia zdolność wykonywania wielokrotnie, automatycznie powtarzanych obliczeń, wg algorytmicznego wzorca zwanego programem, gdy tymczasem kalkulator może zwykle wykonywać tylko pojedyncze działania. Granica jest tu umowna, ponieważ taką definicję komputera spełniają też kalkulatory programowalne (naukowe, inżynierskie), jednak kalkulatory służą tylko do obliczeń matematycznych, podczas gdy nazwa komputer najczęściej dotyczy urządzeń wielofunkcyjnych. Jakkolwiek istnieją mechaniczne urządzenia liczące, które potrafią realizować całkiem złożone programy, zazwyczaj nie zalicza się ich do komputerów. Warto jednak pamiętać, że prawzorem komputera była maszyna Turinga, którą można by wykonać w całości z części mechanicznych (o ile zrezygnujemy z nieskończonej długości taśmy), a pierwsze urządzenia ułatwiające obliczenia były znane w starożytności, np. abakus z 440 p.n.e.. W początkowym okresie rozwoju komputerów budowano komputery zerowej generacji na przekaźnikach i elementach mechanicznych. Właściwie wszystkie współczesne komputery to maszyny elektroniczne. Próby budowania komputerów optycznych (wykorzystujących przełączniki optyczne), optoelektronicznych (kombinowane z elementów optycznych i elektronicznych), biologicznych (wykorzystujące wypreparowane komórki nerwowe) czy molekularnych (wykorzystujące jako bramki logiczne pojedyncze cząsteczki) są jeszcze w powijakach i do ich praktycznego zastosowania jest wciąż długa droga. Innym rodzajem komputera jest komputer kwantowy, którego układ przetwarzający dane wykorzystuje prawa mechaniki kwantowej. Programowalność To, co odróżnia współczesne komputery od wszystkich innych maszyn, jest możliwość ich programowania, czyli wprowadzenia do pamięci komputera listy instrukcji, które mogą być wykonane w innym czasie. W większości przypadków instrukcje, które komputer wykonuje, są bardzo proste - dodawanie dwóch liczb, przeniesienie danych z jednego miejsca w inne, wyświetlenie komunikatu itd. Instrukcje te odczytywane są z pamięci komputera i zazwyczaj wykonywane są w tej samej kolejności, co w pamięci. Istnieją jednak instrukcje umożliwiające "skok" w pewne określone miejsce programu i wykonanie go z tego miejsca. Ponadto, instrukcje skoku mogą być wykonane warunkowo, co umożliwia wykonanie różnych zestawów instrukcji w zależności od uzyskanych wcześniej wyników obliczeń. Ponadto istnieją instrukcje umożliwiające tworzenie podprogramów, pamiętające miejsce z którego wykonano skok by wrócić do niego po wykonaniu podprogramu. Programowanie można w pewnym stopniu przyrównać do czytania książki. W większości wypadków słowa odczytywane są po kolei, zdarzają się jednak momenty, gdy czytelnik wraca do wcześniejszego rozdziału, lub omija nieciekawy fragment. Komputery mają możliwość wykonania pewnych instrukcji w pętli, dopóki nie zostanie spełniony jakiś warunek. Można tu użyć przykładu człowieka próbującego zsumować kolejne liczby na kalkulatorze. Dodaje 1 + 2, do wyniku dodaje 3 itd. Przy próbie zsumowania 10 liczb nie stanowi to problemu, jednak już przy tysiącu po pierwsze zajmuje to bardzo dużo czasu, po drugie przy tak dużej ilości operacji istnieje duże prawdopodobieństwo błędu. Komputer z kolei wykona tę operację w ułamku sekundy, przy użyciu prostego programu: mov #0,sum ; set sum to 0 mov #1,num ; set num to 1 loop: add num,sum ; add num to sum add #1,num ; add 1 to num cmp num,#1000 ; compare num to 1000 ble loop ; if num <= 1000, go back to 'loop' halt ; end of program. stop running Po otrzymaniu rozkazu wykonania programu komputer wykona serię operacji dodawania. Prawdopodobieństwo wystąpienia pomyłki jest znikome. Komputery jednak nie potrafią myśleć samodzielnie i dany problem mogą rozwiązać wyłącznie wg algorytmu przygotowanego przez człowieka. Inteligentna istota napotkawszy podobne zadanie mogłaby zorientować się, że do jego wykonania wystarczy użyć prostego równania: : Innymi słowy komputer wykona postawione przed nim zadanie nie zastanawiając się nad efektywnością wykonanej przez niego "pracy". Podstawowe elementy komputera Większość współczesnych komputerów opartych jest na tzw. architekturze von Neumanna (od nazwiska Johna von Neumanna), tj. składa się z trzech podstawowych elementów: *procesora – podzielonego na część arytmetyczno-logiczną czyli układu, który faktycznie wykonuje wszystkie konieczne obliczenia oraz część sterującą *pamięci RAM – (od ang. Random Access Memory) czyli układy scalone, które przechowują program i dane (umożliwia to m.in. samomodyfikację programu) oraz bieżące wyniki obliczeń procesora i stale, na bieżąco wymienia dane z procesorem *urządzeń wejścia/wyjścia – które służą do komunikacji komputera z otoczeniem. Typy komputerów Przykład notebooka firmy IBMWspółcześnie komputery dzieli się na: *komputery osobiste ("PC", z ang. personal computer) – o rozmiarach umożliwiających ich umieszczenie na biurku, używane zazwyczaj przez pojedyncze osoby *komputery domowe – poprzedniki komputerów osobistych, korzystające z telewizora, jako monitora. *konsola – następca komputera domowego wyspecjalizowany w programach rozrywkowych. Zazwyczaj korzysta z telewizora jako głównego wyświetlacza. Posiada ograniczone oprogramowanie przygotowane do wydajnego uruchamiania programów i gier. Na niektórych modelach można zainstalować inny system operacyjny i wykorzystywać do specyficznych zastosowań, np. procesory graficzne konsoli PS3 znakomicie nadają się do łamania różnego rodzaju kodów. *komputery mainframe – często o większych rozmiarach, których zastosowaniem jest przetwarzanie dużych ilości danych na potrzeby różnego rodzaju instytucji, pełnienie roli serwerów itp. *komputery gospodarcze – używane w gospodarstwach rolnych w celu efektywnego sterowania procesami produkcyjnymi. *superkomputery – największe komputery o dużej mocy obliczeniowej, używane do czasochłonnych obliczeń naukowych i symulacji skomplikowanych systemów. *komputery wbudowane – (lub osadzone, ang. embedded) specjalizowane komputery służące do sterowania urządzeniami z gatunku automatyki przemysłowej, elektroniki użytkowej (np. telefony komórkowe itp.) czy wręcz poszczególnymi komponentami wchodzącymi w skład komputerów. Historia komputerów Najwybitniejsi naukowcy, których prace przyczyniły się do powstania komputerów: *Blaise Pascal (kalkulator od nazwiska konstruktora zwany Pascaliną, 1642) *Gottfried Leibniz (system binarny, żywa ława do obliczeń, mechanizm stepped drum) *Charles Babbage (maszyna różnicowa, maszyna analityczna) *Ada Lovelace (prace teoretyczne, wizjonerskie w jej czasach koncepcje wykorzystania komputerów) *Claude Shannon (teoretyczne podstawy budowy komputerów – "przekucie" algebr Boola i współczesnej mu wiedzy o elektronice) *Alan Turing (teoretyczne podstawy informatyki, Maszyna Turinga i Uniwersalna maszyna Turinga) Niektóre z historycznych modeli komputerów: *Z3 – w pełni automatyczny komputer o zmiennym programie zbudowany przez niemieckiego inżyniera Konrada Zuse w 1941. *Colossus – wyprodukowane przez rząd brytyjski podczas drugiej wojny światowej w liczbie 11 sztuk komputery lampowe, których zadaniem było od 8 grudnia 1943 roku łamanie szyfrów maszyny Enigma (zwłaszcza do złamania szyfrów maszyny Lorenza). *ENIAC – tworzony w latach 1943–1946 elektroniczny komputer, który składał się z 18 tys. lamp elektronowych 1500 przekaźników, ważył 30 ton i miał wymiary 15 na 9 metrów. Polskie komputery *cyfrowe: K-202, PRS-4, XYZ, ZAM, UMC, Odra, Mera 300, Mera 400, Poltype, R32, Mazovia, Meritum, Elwro 800 Junior, ComPAN 8, Menopc 900 *analogowe: ELWAT, AKAT-1, ARR